package com.example.livemall.service.impl;


import com.example.livemall.dto.LzjResult;
import com.example.livemall.dto.SearchResult;
import com.example.livemall.entity.Comment;
import com.example.livemall.mapper.CommentMapper;
import com.example.livemall.service.CommentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 商品评论服务业务逻辑层
 */
@Service
public class CommentServiceImpl implements CommentService {

    @Autowired
    private CommentMapper commentMapper;

    /**
     * 根据商品主键查询商品评论并处理分页
     *
     * @param itemId 商品主键
     * @param page   查询第几页
     * @param size   每页多少行
     * @return
     */
    @Override
    public SearchResult selectCommentByItemId(String itemId, int page, int size) {
        // 创建查询条件
        // 分页逻辑
        // 分页查询商品评论
        Integer offset = page * size; // page 从 0 开始
        List<Comment> commentList = commentMapper.selectCommentList(itemId, offset, size);
        // 隐藏用户手机号。 135 1234 4321 -> 135 **** 4321
        commentList.forEach(comment ->
				comment.setUsername(comment.getUsername()
						.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2")));
        // 构建返回对象
        SearchResult result = SearchResult.success("查询成功", commentList);
        // 获取评论条数
        long count = commentMapper.countByQuery(itemId);
        // 是否有更多数据

        result.setHasMore(count - offset - commentList.size() > 0);

        return result;
    }

}
